import { Vector2 } from "three";
import * as THREE from 'three'

/** 鼠标按下去的初始点位，和弹起时的结束点位 */
export interface IMousePoints {
    /** 起始点位 */
    mouseStart: Vector2,
    /**  结束点位 */
    mouseEnd: Vector2
}

/** 修改的类型 */
export enum EChangeType {
    /** 删除 */
    Remove,
    /** 减少 */
    Decrease,
    /** 增加 */
    Increase,
    /** 更新 */
    Update
}

/** transform的类型 */
export enum TransformType {
    Rotate = "rotation", Position = "position", Scalc = "scale"
}

/** 'translate' | 'rotate' | 'scale' */
export type ITransformMode = "translate" | "rotate" | "scale";

/** 'showX' | 'showY' | 'showZ' */
export type IAxisShowMode = 'showX' | 'showY' | 'showZ'

/** dom元素的宽高 */
export interface IDomWH {
    width: number,
    height: number
}

/** 带材质的three基类 */
export type ITakeMaterial = THREE.Mesh | THREE.Line | THREE.Points | THREE.Sprite;


/** 带材质的类型*/
export type IMaterial = THREE.Material | THREE.SpriteMaterial | THREE.Material[];

